package org.jvnet.jaxb2_commons.xml.bind.annotation.adapters;
import java.util.LinkedList;
import java.util.List;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import org.jvnet.jaxb2_commons.lang.StringUtils;
public class CommaDelimitedStringAdapter extends
XmlAdapter<String, List<String>> {
@Override
public String marshal(List<String> value) throws Exception {
if (value == null) {
return null;
} else {
return StringUtils.join(value.iterator(), ", ");
}
}
@Override
public List<String> unmarshal(String text) throws Exception {
if (text == null) {
return null;
} else
{
final List<String> value = new LinkedList<String>();
final String[] items = StringUtils.split(text, ',');
for (String item : items) {
final String trimmedItem = item.trim();
if (!StringUtils.isEmpty(trimmedItem)) {
value.add(trimmedItem);
}
}
return value;
}
}
}